A storage device is a device that has a large number of harddisk drives and large capacity cache memories and stores data used by, for example, servers. A storage device provides a function of snapshot, which holds an image of data at a particular moment. Snapshot is performed in response to a request from, for example, a server. As a snapshot function, there is for example a Copy-On-Write (referred to as COW hereinafter) method. Snapshot does not perform a process of copying copy source data as it is. Snapshot performs a process of obtaining meta information related to copy source data, resulting in an advantage that it only requires a short period of time for backup. However, when copy source data is updated with the meta information having been backed up, data at the moment of taking a snapshot is overwritten, making it impossible to refer to the data later. Accordingly, in a storage device that uses snapshot of the COW method, when data is to be updated after obtaining a snapshot, data blocks including the data before the update are saved to a different address. The storage device obtains meta information corresponding to the area in which the data blocks are saved, and writes data to be updated over the saved data.
A storage device using snapshot of the COW method refers to copy source data as master slices, and manages them in units called chunks. Also, a storage device includes a COW slice that holds data to be used for snapshot. In snapshot, when data has been updated, the storage device stores data obtained by updating the data of a master slice in a data area of a COW slice. For this storing, the storage device stores, in a COW slice and as meta information, mapping information that associates a (physical) address at which data of a master slice was stored and a (logical) address of a COW slice that is a saving destination.
Accompanying the increase in the scale of storage devices and systems, the amount of mapping information for managing chunks of COW slices tend to increase. An increase in the amount of mapping information leads to an increase in the number of accesses to COW slices, which also increases the usage amount of memories in a storage device. This results in deterioration in the performance of snapshot. It is desirable that the performance of snapshot be maintained even when the amount of mapping information has increased.
As a technique of maintaining the performance of snapshot, a technique is known that distributes loads of generating snapshots between a host and a storage device (see Patent Document 1 for example).
Patent Document 1: Japanese Laid-open Patent Publication No. 2004-118413